Auto merge of #5258 - djc:split-resolver, r=Eh2406
authorbors <bors@rust-lang.org>
Fri, 30 Mar 2018 03:07:39 +0000 (03:07 +0000)
committerbors <bors@rust-lang.org>
Fri, 30 Mar 2018 03:07:39 +0000 (03:07 +0000)
commit3548057fb91d05514e0aa18840e94174f480c175
treeba616014b540f78f09d4150fab5171711299dae0
parent434c702012ffcfd0ea486fefc2a819d6838048bc
parent45da57496568dc34b73d6ceddae22d13b6c8f9fc
Auto merge of #5258 - djc:split-resolver, r=Eh2406

Split resolver module to make it more manageable

The `core::resolver` module is currently the largest in Cargo, at some 2000 lines. Here's an attempt at splitting it into more reasonable parts and reordering the code in it for better comprehensibility.

Splitting is done in three major steps:

* Move the `Resolve` type and its dependencies into a separate module (~220 lines)
* Move utility data types into a separate module (~400 lines)
* Move the `Context` type and its dependencies into a separate module (~400 lines)

This halves the size of the root module, which is then reordered to make it more readable.

(This is a yak-shaving expedition of sorts, in preparation for #1286.)